类 播放窗口 : 窗口

	@布局配置([[根布局=真,宽度=-1,高度=-1,纵向布局=真,背景颜色=-1117706]])
	变量 线性布局1 : 线性布局
	@布局配置([[父布局=线性布局1,宽度=-1,高度DP=45,左内边距DP=18,右内边距DP=18]])
	变量 相对布局1 : 相对布局
	@布局配置([[父布局=相对布局1,宽度DP=23,高度DP=23,@位于布局中间=真,@位于布局左边=真,图片资源="../../素材/内置/png/下.png",ID=1]])
	变量 图片框1 : 图片框
	@布局配置([[父布局=相对布局1,宽度=-1,高度=-1,@位于某组件左边=2,@位于某组件右边=1,对齐方式=17]])
	变量 线性布局2 : 线性布局
	@布局配置([[父布局=线性布局2,高度=-1]])
	变量 导航栏1 : 导航栏
	@布局配置([[父布局=相对布局1,宽度DP=23,高度DP=23,图片资源="../../素材/内置/png/音乐分享.png",@位于布局中间=真,@位于布局右边=真,ID=2]])
	变量 图片框2 : 图片框
	@布局配置([[父布局=相对布局1,宽度DP=1,高度DP=10,卡片阴影=0,@位于布局中间=真]])
	变量 卡片布局1 : 卡片布局
	@布局配置([[父布局=卡片布局1,宽度=-1,高度=-1,背景颜色=-16382458]])
	变量 线性布局3 : 线性布局
	@布局配置([[父布局=线性布局1,可否滑动=假]])
	变量 分页布局1 : 分页布局

	变量 项目集 : 文本集合 = {"歌曲","歌词"}
	变量 歌曲布局1:播放页歌曲布局
	变量 歌词布局1:播放页歌词布局

	@静态
	变量 标题集合:文本集合
	@静态
	变量 图片集合:文本集合
	@静态
	变量 歌手集合:文本集合
	@静态
	变量 音乐集合:文本集合
	@静态
	变量 音乐来源:文本
	@静态
	变量 当前播放索引:整数=-1
	@静态
	变量 音乐播放器1:音乐播放器
	@静态
	变量 当前播放直连:逻辑型

	变量 取音乐链接1:网络工具

	变量 取音乐链接2无损:网络工具

	@静态
	变量 旋转图片时钟:时钟

	变量 缩放动画1 : 缩放动画扩增?

	变量 当前音乐标准音质:文本
	变量 当前音乐无损音质:文本

	事件 播放窗口:创建完毕()
		订阅事件()

		歌曲布局1.文本框1.内容 = 标题集合[当前播放索引]
		歌曲布局1.文本框2.内容 = 歌手集合[当前播放索引]
		歌曲布局1.圆形图片框1.加载网络图片(图片集合[当前播放索引])

		分页布局1.可否滑动 = 假
		本对象.屏幕方向 = 1
		本对象.显示标题栏 = 假
		本对象.状态栏字体黑色 = 真
		本对象.状态栏颜色 = 文本到颜色值("#EEF1F6")
		本对象.导航栏颜色 = 文本到颜色值("#D5D5EF")
		线性布局3.背景颜色 = 灰色
		缩放动画1 = 缩放动画扩增.创建动画(0.7,1,0.7,1,0.5,0.5,缩放动画扩增.比例值_基于组件,缩放动画扩增.比例值_基于组件)
		缩放动画1.插值器 = 跳跃插值器.新建()
		缩放动画1.播放时间 = 300
		缩放动画1.保持最终状态 = 假

		分页布局1.添加页面(歌曲布局1)
		分页布局1.添加页面(歌词布局1)
		事件 导航栏1:导航文本样式(索引 : 整数,导航文本 : 文本) : 导航文本样式
			变量 文本样式 : 导航文本样式_渐变缩放
			文本样式.颜色_选中 = 黑色
			文本样式.颜色_未选中 = 灰色
			文本样式.粗体 = 真
			文本样式.字体大小 = 18
			文本样式.缩小度 = 0.9
			返回 文本样式
		结束 事件
		导航栏1.绑定分页布局(分页布局1)
		导航栏1.置文本集(项目集)
		如果 公用数据.当前音乐判断!=标题集合[当前播放索引] 则
			如果 当前播放索引!=-1 则
				如果 当前播放直连==假 则
					假如 音乐来源
						是 "酷我"
							解析酷我音乐()
					结束 假如
				结束 如果
			结束 如果
			公用数据.当前音乐判断=标题集合[当前播放索引]
		否则

		结束 如果
		事件 歌曲布局1.图片框9:被单击()
			如果 当前播放索引!=-1 则
				如果 音乐播放器1.是否在播放()==真 则
					歌曲布局1.图片框9.图片资源 = "../../素材/内置/png/20241004190414.png"
					音乐播放器1.暂停播放()
					旋转图片时钟.时钟周期 = 0
				否则
					歌曲布局1.图片框9.图片资源 = "../../素材/内置/png/暂停.png"
					音乐播放器1.开始播放()
					旋转图片时钟.时钟周期 = 30
				结束 如果
			结束 如果
		结束 事件

		事件 歌曲布局1.图片框10:被单击()
			如果 当前播放索引!=-1 则
				如果 音乐播放器1.是否在播放()==真 则
					歌曲布局1.图片框9.图片资源 = "../../素材/内置/png/20241004190414.png"
					音乐播放器1.暂停播放()
					旋转图片时钟.时钟周期 = 0
				结束 如果
				如果 当前播放索引==0 则
					当前播放索引=音乐集合.长度-1
				否则
					当前播放索引=当前播放索引-1
				结束 如果
				假如 音乐来源
					是 "酷我"
						解析酷我音乐()
				结束 假如
			结束 如果
		结束 事件

		事件 歌曲布局1.图片框11:被单击()
			如果 当前播放索引!=-1 则
				如果 音乐播放器1.是否在播放()==真 则
					歌曲布局1.图片框9.图片资源 = "../../素材/内置/png/20241004190414.png"
					音乐播放器1.暂停播放()
					旋转图片时钟.时钟周期 = 0
				结束 如果
				如果 当前播放索引==音乐集合.长度-1 则
					当前播放索引=0
				否则
					当前播放索引=当前播放索引+1
				结束 如果
				假如 音乐来源
					是 "酷我"
						解析酷我音乐()
				结束 假如
			结束 如果
		结束 事件

		事件 音乐播放器1:音乐播放完毕()
			如果 当前播放索引!=-1 则
				如果 音乐播放器1.是否在播放()==真 则
					歌曲布局1.图片框9.图片资源 = "../../素材/内置/png/20241004190414.png"
					音乐播放器1.暂停播放()
					旋转图片时钟.时钟周期 = 0
				结束 如果
				如果 当前播放索引==音乐集合.长度-1 则
					当前播放索引=0
				否则
					当前播放索引=当前播放索引+1
				结束 如果
				假如 音乐来源
					是 "酷我"
						解析酷我音乐()
				结束 假如
			结束 如果
		结束 事件

		事件 歌曲布局1.进度条根:被触摸(来源事件 : 触摸事件) : 逻辑型
			变量 进度1 :整数 =来源事件.取横坐标().到整数()
			变量 快进 : 整数 =(音乐播放器1.取音乐总时长()*进度1/歌曲布局1.进度条背景.宽度)

			如果 来源事件.动作 ==触摸动作.移动 则
				如果 进度1 > 歌曲布局1.进度条背景.宽度 则
					歌曲布局1.进度条前景.宽度 = 歌曲布局1.进度条背景.宽度
					歌曲布局1.滑动块.横坐标 = 歌曲布局1.进度条前景.横坐标+歌曲布局1.进度条背景.宽度+80
					歌曲布局1.文本框3.内容 = 时间戳到文本(音乐播放器1.取音乐总时长(),"mm:ss")
				否则 进度1 < 歌曲布局1.滑动块.宽度
					歌曲布局1.进度条前景.宽度 = 1
					歌曲布局1.滑动块.横坐标 =80
					歌曲布局1.文本框3.内容 = "00:00"
				否则
					歌曲布局1.进度条前景.宽度 = 进度1
					歌曲布局1.滑动块.横坐标 = 歌曲布局1.进度条前景.横坐标+进度1+80
					歌曲布局1.文本框3.内容 = 时间戳到文本(快进,"mm:ss")
				结束 如果
				音乐播放器1.快进至(快进)
			结束 如果

			如果 来源事件.动作 ==触摸动作.按下 则
				如果 进度1 > 歌曲布局1.进度条背景.宽度 则
					歌曲布局1.进度条前景.宽度 = 歌曲布局1.进度条背景.宽度
					歌曲布局1.滑动块.横坐标 = 歌曲布局1.进度条前景.横坐标+歌曲布局1.进度条背景.宽度+80
					歌曲布局1.文本框3.内容 = 时间戳到文本(音乐播放器1.取音乐总时长(),"mm:ss")
				否则 进度1 < 歌曲布局1.滑动块.宽度
					歌曲布局1.进度条前景.宽度 = 1
					歌曲布局1.滑动块.横坐标 =80
					歌曲布局1.文本框3.内容 = "00:00"
				否则
					歌曲布局1.进度条前景.宽度 = 进度1
					歌曲布局1.滑动块.横坐标 = 歌曲布局1.进度条前景.横坐标+进度1+80
					歌曲布局1.文本框3.内容 = 时间戳到文本(快进,"mm:ss")
				结束 如果
				音乐播放器1.快进至(快进)
			结束 如果

			返回 真
		结束 事件


		事件 歌曲布局1.线性布局5:被单击()
			歌曲布局1.图片框5.播放动画(缩放动画1)
		结束 事件

		事件 歌曲布局1.线性布局6:被单击()
			歌曲布局1.图片框6.播放动画(缩放动画1)
			变量 消息 : DX基础对话框
			消息.样式(DX样式.MIUI)
			消息.主题(DX主题.亮色)
			消息.标题("是否下载？")
			消息.内容("《"+歌曲布局1.文本框1.内容+"》")
			消息.按钮1("标准音质")
			消息.按钮3("无损音质")
			消息.按钮2("取消")
			消息.按钮纵向显示(真)
			消息.可取消(真)
			消息.显示()
			事件 消息:按钮1被单击() : 逻辑型
				弹出提示(当前音乐标准音质)
				返回 假
			结束 事件
			事件 消息:按钮2被单击() : 逻辑型
				弹出提示(当前音乐无损音质)
				返回 假
			结束 事件
		结束 事件

		事件 歌曲布局1.线性布局7:被单击()
			歌曲布局1.图片框7.播放动画(缩放动画1)
		结束 事件

		事件 歌曲布局1.线性布局8:被单击()
			歌曲布局1.图片框8.播放动画(缩放动画1)
			变量 播放弹窗:DX全屏对话框
			变量 歌单弹窗布局1:歌单弹窗布局
			播放弹窗.自定义布局(歌单弹窗布局1)
			播放弹窗.可取消(真)
			播放弹窗.圆角(45)
			播放弹窗.显示()
		结束 事件


	结束 事件
	//音乐正在播放时触发该事件
	事件 音乐播放器1:音乐正在播放()
		歌曲布局1.文本框1.内容 = 标题集合[当前播放索引]
		歌曲布局1.文本框2.内容 = 歌手集合[当前播放索引]
		歌曲布局1.图片框9.图片资源 = "../../素材/内置/png/暂停.png"
		歌曲布局1.圆形图片框1.加载网络图片(图片集合[当前播放索引])
		歌曲布局1.文本框3.内容 =  时间戳到文本(音乐播放器1.取当前播放位置(),"mm:ss")
		歌曲布局1.文本框4.内容 =  时间戳到文本(音乐播放器1.取音乐总时长(),"mm:ss")

		变量 进度 :整数 =(音乐播放器1.取当前播放位置()*歌曲布局1.进度条背景.宽度/音乐播放器1.取音乐总时长())
		歌曲布局1.进度条前景.宽度 = 进度
		歌曲布局1.滑动块.横坐标 = 歌曲布局1.进度条前景.横坐标+进度+80

	结束 事件

	方法 解析酷我音乐()
		取音乐链接1.添加请求头("User-Agent","Apache-HttpClient/UNAVAILABLE (java 1.4)")
		取音乐链接1.取网页源码("http://nmobi.kuwo.cn/mobi.s?f=web&source=kwplayerhd_ar_4.3.0.8_tianbao_T1A_qirui.apk&type=convert_url_with_sign&rid="+音乐集合[当前播放索引]+"&br=320kmp3")
		解析酷我无损音乐()
	结束 方法

	事件 取音乐链接1:取网页源码结束(结果 : 文本,内容 : 字节[],cookie : 文本)
		变量 音乐直连对象:JSON对象=结果
		变量 音乐下载直连:文本
		音乐下载直连=音乐直连对象.取JSON对象("data").取文本("url")
		当前音乐标准音质=音乐下载直连
		播放窗口.音乐播放器1.置播放路径(音乐下载直连,真)
		旋转图片时钟.时钟周期 = 30
	结束 事件

	方法 解析酷我无损音乐()
		取音乐链接2无损.添加请求头("User-Agent","Apache-HttpClient/UNAVAILABLE (java 1.4)")
		取音乐链接2无损.取网页源码("http://nmobi.kuwo.cn/mobi.s?f=web&source=kwplayerhd_ar_4.3.0.8_tianbao_T1A_qirui.apk&type=convert_url_with_sign&rid="+音乐集合[当前播放索引]+"&br=2000kflac")
	结束 方法

	事件 取音乐链接2无损:取网页源码结束(结果 : 文本,内容 : 字节[],cookie : 文本)
		变量 音乐无损对象:JSON对象=结果
		当前音乐无损音质=音乐无损对象.取JSON对象("data").取文本("url")
	结束 事件


	事件 旋转图片时钟:周期事件()
		如果 音乐播放器1.是否在播放()==真 则
			如果 歌曲布局1.圆形图片框1.旋转角 == 360 则
				歌曲布局1.圆形图片框1.旋转角=1
			否则
				歌曲布局1.圆形图片框1.旋转角=歌曲布局1.圆形图片框1.旋转角+1
			结束 如果
		结束 如果
	结束 事件

	@虚拟方法
	方法 返回键被按下()
		如果 分页布局1.取当前页面索引()==分页布局1.页面总数 则
			分页布局1.显示页面(0)
		否则
			父对象.返回键被按下()
			播放切换动画(自定义切换动画.从上向下_进入,自定义切换动画.从上向下_退出)
		结束 如果

	结束 方法

	事件 图片框1:被单击()
		父对象.返回键被按下()
		播放切换动画(自定义切换动画.从上向下_进入,自定义切换动画.从上向下_退出)
	结束 事件

	事件 图片框2:被单击()
		图片框2.播放动画(缩放动画1)

	结束 事件


结束 类

类 播放页歌曲布局:组件容器

	@布局配置([[根布局=真,宽度=-1,高度=-1]])
	变量 相对布局8 : 相对布局
	@布局配置([[父布局=相对布局8,宽度=-1,高度=-1,图片资源="../../素材/内置/png/bc5.xml"]])
	变量 图片框14 : 图片框
	@布局配置([[父布局=相对布局8,宽度=-1,高度=-1,纵向布局=真]])
	变量 线性布局1 : 线性布局
	@布局配置([[父布局=线性布局1,宽度=-1,高度DP=350,内边距DP=30]])
	变量 相对布局1 : 相对布局
	@布局配置([[父布局=相对布局1,图片资源="../../素材/内置/png/Player_body.png",宽度=-1,高度=-1]])
	变量 图片框1 : 图片框
	@布局配置([[父布局=相对布局1,图片资源="../../素材/内置/png/pag_player_record.png",@位于布局中间=真,宽度DP=197,高度DP=197,横向偏移DP=-21]])
	变量 图片框2 : 图片框
	@布局配置([[父布局=相对布局1,宽度DP=100,高度DP=100,图片资源="../../素材/内置/png/1.jpg",@位于布局中间=真,横向偏移DP=-21]])
	变量 圆形图片框1 : 圆形图片框
	@布局配置([[父布局=相对布局1,宽度=-1,高度=-1,可视=真]])
	变量 相对布局2 : 相对布局
	@布局配置([[父布局=相对布局2,图片资源="../../素材/内置/png/pag_cover_mask.png",高度=-1,宽度DP=118,旋转角=0.0,横向偏移DP=0,@位于布局右边=真,纵向偏移DP=0]])
	变量 图片框4 : 图片框
	@布局配置([[父布局=相对布局1,宽度DP=90,@位于布局右边=真,高度DP=235]])
	变量 相对布局3 : 相对布局
	@布局配置([[父布局=相对布局3,图片资源="../../素材/内置/png/Player_volume_btn.png",@位于布局中间=真,宽度DP=10,高度DP=10,@位于布局底部=真]])
	变量 图片框3 : 图片框
	@布局配置([[父布局=线性布局1,宽度=-1,高度DP=35,左内边距DP=20,右内边距DP=20]])
	变量 线性布局2 : 线性布局
	@布局配置([[父布局=线性布局2,宽度=-1,高度=-1,对齐方式=17,粗体=真,字体大小=16,字体颜色=-16777216,内容="音乐标题",跑马灯效果=真]])
	变量 文本框1 : 文本框
	@布局配置([[父布局=线性布局1,宽度=-1,高度DP=35,左内边距DP=20,右内边距DP=20]])
	变量 线性布局3 : 线性布局
	@布局配置([[父布局=线性布局3,宽度=-1,高度=-1,对齐方式=17,内容="歌手",字体大小=13]])
	变量 文本框2 : 文本框
	@布局配置([[父布局=线性布局1,宽度=-1,高度DP=50]])
	变量 线性布局4 : 线性布局
	@布局配置([[父布局=线性布局1,宽度=-1,高度DP=30,左内边距DP=20,右内边距DP=20]])
	变量 相对布局4 : 相对布局
	@布局配置([[父布局=相对布局4,宽度DP=70,高度=-1,对齐方式=17,ID=1]])
	变量 线性布局5 : 线性布局
	@布局配置([[父布局=线性布局5,宽度DP=22,高度DP=22,图片资源="../../素材/内置/png/20241004182247.png"]])
	变量 图片框5 : 图片框
	@布局配置([[父布局=相对布局4,宽度DP=70,高度=-1,对齐方式=17,@位于某组件右边=1]])
	变量 线性布局6 : 线性布局
	@布局配置([[父布局=线性布局6,宽度DP=20,高度DP=20,图片资源="../../素材/内置/png/20241004182306.png"]])
	变量 图片框6 : 图片框
	@布局配置([[父布局=相对布局4,宽度DP=70,高度=-1,对齐方式=17,@位于某组件左边=2]])
	变量 线性布局7 : 线性布局
	@布局配置([[父布局=线性布局7,宽度DP=25,高度DP=25,图片资源="../../素材/内置/png/20241004190428.png"]])
	变量 图片框7 : 图片框
	@布局配置([[父布局=相对布局4,宽度DP=70,高度=-1,对齐方式=17,ID=2,@位于布局右边=真]])
	变量 线性布局8 : 线性布局
	@布局配置([[父布局=线性布局8,宽度DP=25,高度DP=25,图片资源="../../素材/内置/png/20241004190443.png"]])
	变量 图片框8 : 图片框
	@布局配置([[父布局=线性布局1,宽度=-1,高度DP=80,对齐方式=17,左内边距DP=0,右内边距DP=0]])
	变量 线性布局9 : 线性布局
	@布局配置([[父布局=线性布局9,宽度=-1,高度DP=50,左内边距DP=0,右内边距DP=0]])
	变量 相对布局7 : 相对布局
	@布局配置([[父布局=相对布局7,宽度=-1,高度=240,ID=1]])
	变量 进度条根 : 相对布局
	@布局配置([[父布局=进度条根,宽度=870,高度=18,圆角=75,@位于布局中间=真,ID=1,背景颜色=-855310]])
	变量 进度条背景 : 卡片布局
	@布局配置([[父布局=进度条背景,宽度=0,高度=-1,圆角=75,背景颜色=-13202698]])
	变量 进度条前景 : 卡片布局
	@布局配置([[父布局=进度条根,宽度=40,高度=40,圆角=170,可视=真,@位于布局中间=真,@位于布局左边=真,@左外边距=80,背景颜色=-13202698]])
	变量 滑动块 : 卡片布局
	@布局配置([[父布局=滑动块,宽度=-1,高度=-1,背景颜色=16777215]])
	变量 滑动块隔层 : 相对布局
	@布局配置([[父布局=滑动块隔层,背景颜色=-1,宽度=20,高度=20,@位于布局中间=真,圆角=75]])
	变量 滑动块装饰 : 卡片布局
	@布局配置([[父布局=进度条根,@位于某组件之下=1,宽度=-1,左内边距DP=30,右内边距DP=30,@上外边距DP=8]])
	变量 相对布局5 : 相对布局
	@布局配置([[父布局=相对布局5,内容="00:00",字体大小=12]])
	变量 文本框3 : 文本框
	@布局配置([[父布局=相对布局5,内容="00:00",字体大小=12,@位于布局右边=真]])
	变量 文本框4 : 文本框
	@布局配置([[父布局=线性布局1,宽度=-1,高度DP=80,对齐方式=17,左内边距DP=18,右内边距DP=18]])
	变量 线性布局10 : 线性布局
	@布局配置([[父布局=线性布局10,宽度=-1,高度=-1]])
	变量 相对布局6 : 相对布局
	@布局配置([[父布局=相对布局6,图片资源="../../素材/内置/png/20241004190457.png",宽度DP=20,高度DP=20,@位于布局中间=真,ID=2,@位于某组件左边=1,@右外边距DP=45]])
	变量 图片框10 : 图片框
	@布局配置([[父布局=相对布局6,图片资源="../../素材/内置/png/20241004190414.png",宽度DP=50,高度DP=50,@位于布局中间=真,ID=1]])
	变量 图片框9 : 图片框
	@布局配置([[父布局=相对布局6,图片资源="../../素材/内置/png/20241004190513.png",宽度DP=20,高度DP=20,@位于布局中间=真,ID=3,@位于某组件右边=1,@左外边距DP=45]])
	变量 图片框11 : 图片框


	事件 播放页歌曲布局:创建完毕()
		订阅事件()
		变量 四分之一:整数=(PX到DP(取安卓窗口(),取屏幕宽度(取安卓窗口()))-40)/4
		线性布局5.宽度DP=四分之一
		线性布局6.宽度DP = 四分之一
		线性布局7.宽度DP = 四分之一
		线性布局8.宽度DP = 四分之一
		图片框3.纵向偏移DP = (-56/音量工具.取最大音量(取安卓窗口(),音量类型.媒体音量))*音量工具.取音量(取安卓窗口(),音量类型.媒体音量)
	结束 事件


	/*
	事件 音量被改变()
		图片框3.纵向偏移DP = (-53/音量工具.取最大音量(取安卓窗口(),音量类型.媒体音量))*音量工具.取音量(取安卓窗口(),音量类型.媒体音量)
	结束 事件
	

	//播放
	事件 按钮1:被单击()
		图片框4.横向偏移DP = -25
		图片框4.纵向偏移DP = -10
		图片框4.旋转角 = 14
	结束 事件
	
	//暂停
	事件 按钮2:被单击()
		图片框4.横向偏移DP = -8
		图片框4.纵向偏移DP = -8
		图片框4.旋转角 =0
	结束 事件
	
	//设置音量
	事件 按钮3:被单击()
		图片框3.纵向偏移DP = (-53/音量工具.取最大音量(取安卓窗口(),音量类型.媒体音量))*音量工具.取音量(取安卓窗口(),音量类型.媒体音量)
	结束 事件
	*/
结束 类

类 歌单弹窗布局:组件容器

	@布局配置([[根布局=真,宽度=-1,高度=-1]])
	变量 相对布局1 : 相对布局
	@布局配置([[父布局=相对布局1,宽度=-1,高度DP=450,ID=4]])
	变量 相对布局2 : 相对布局

	事件 歌单弹窗布局:创建完毕()
		订阅事件()
	结束 事件	
结束 类


类 播放页歌词布局:组件容器

	@布局配置([[根布局=真,宽度=-1,高度=-1]])
	变量 相对布局1 : 相对布局
	@布局配置([[父布局=相对布局1,宽度=-1,高度=-1,图片资源="../../素材/内置/png/bc5.xml"]])
	变量 图片框1 : 图片框


	事件 播放页歌词布局:创建完毕()
		订阅事件()

	结束 事件
结束 类